package day6;

public class Demo3 {
    public static void main(String[] args) {
//        Demo3Developer developer = new JavaDeveloper();
    }
}

/*
* 抽象父类，研发部员工
* 1.抽象方法所在的类就是抽象类，使用abstract修饰
* 2.抽象类没有办法创建对象，因为创建对象为了调用属性和功能，抽象类中抽象方法没有方法实现，所以调用没有任何意义
*   抽象类中的普通方法可以使用子类调用
* */
abstract class Demo3Developer{

    //工作功能，各种员工工作内容不同，抽象方法，只有方法的声明，没有方法的实现，需要使用abstract修饰
    public abstract void work();

    //只要是员工打卡方式都是一样的
    public void signIn(){
        System.out.println("打卡上班啦");
    }
}

/*
* Java工程师，子类继承抽象父类研发部员工
* 子类继承抽象父类时，必须要实现父类中所有的抽象方法。除非子类也是一个抽象类
* */
class JavaDeveloper extends Demo3Developer{

    @Override
    public void work() {
        System.out.println("java开发在写后台");
    }
}

class WebDeveloper extends Demo3Developer{

    @Override
    public void work() {
        System.out.println("前端工程师在画页面");
    }
}